Python subprocess
code:python
>> import subprocess
# 標準出力を取得する
>> ret = subprocess.run("ls", shell=True, capture_output=True)
>> ret.stdout
b'add_env_path\nexec-collection\nexec-role.sh\nget_collection_roles_path\nmakerole.sh\n'
# 末尾の改行を除く
>> ret.stdout.strip()
b'add_env_path\nexec-collection\nexec-role.sh\nget_collection_roles_path\nmakerole.sh'
# バイト列を文字列に変換する(decode)
>> ret.stdout.strip().encode()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'bytes' object has no attribute 'encode'. Did you mean: 'decode'?
>> ret.stdout.strip().decode()
'add_env_path\nexec-collection\nexec-role.sh\nget_collection_roles_path\nmakerole.sh'
# 改行を評価する
>> print(ret.stdout.strip().decode())
add_env_path
exec-collection
exec-role.sh
get_collection_roles_path
# 改行で分ける
>> ret.stdout.strip().decode().split("\n")
確認用
Q. Python subprocess
参考
関連